1 REM***** LOCKSMITH BY RICK ANDING**** 2 REM******* ATLANTA, GEORGIA ****** 3 GOSUB 9000 4 GOSUB 3000 5 GOSUB 5000 10 POKE 53280,6:POKE 53281,6:POKE 646,3 20 PRINT"[147]":PRINT:PRINT 25 FOR X=1 TO 1000:NEXT 100 PRINT" [206][183][183][183][183][183][183][205] " 110 PRINT" [206][160][206][183][183][183][183][205] [205] " 120 PRINT" [165][167] [165][167] " 130 PRINT" [165][167] [165][167] " 140 PRINT" [165][167] [165][167] " 150 PRINT" [170][183][183][183][183][183][183][183][183][183][183][183][183][183][183][180] " 160 PRINT" [170] A B C D [180] " 170 PRINT" [170][170][183][183][183][207][183][183][207][183][183][207][183][183][180][180] " 180 PRINT" [170][170] [158]2[159][146] [180][158]3[159][146] [180][158]4[159][146] [180][158]5[159][146] [180][180] " 190 PRINT" [170][170][175][175][175][204][175][175][204][175][175][204][175][175][180][180] " 200 PRINT" [170] [180] " 210 PRINT" [170][175][175][175][175][175][175][175][175][175][175][175][175][175][175][180] " 290 DATA "T","H","E"," ","L","O","C","K","S","M","I","T","H" 300 DATA4,8,2,1,9,5,2,4,8,0,1,3,7,5,2,9,3,6,0,1,6,4,2,8,0,9,5,3,1,8,0,1,3,3,5,6 305 DATA "*","*","*","*" 310 PRINT:PRINT:PRINT:PRINT:PRINT"TO RESET COMBINATION, PRESS SPACE BAR 315 [161] A$ 320 [139] A$[178]"" [137] 315:[139] A$[179][177][199](32) [137] 315 325 [129] X[178]1 [164] 1000:[130] 330 [129] Z[178]1 [164] 10 340 [135] A$,B$,C$,D$ 345 [153] [163]13)"ONONONONONONONONONSYS";A$ 348 [153] [163]16)"ON";B$ 350 [153] [163]19)"ON";C$ 355 [153] [163]22)"ON";D$ 360 [153]"" 370 [129] X[178]1 [164] 150:[130] X 380 [130] Z 390 [153]"OPEN" 400 [129] X[178]1 [164] 1000:[130]:[153]"ONONON":[153]" " 410 [153]"ONONONON COMBINATION NOW SET!" 412 [129] X[178]1 [164] 1000:[130]:[153]" NUMBER OF GUESSES: 12" 415 [129] X[178]1 [164] 1500:[130]:[153] 420 [133] "WHAT IS THE NUMBER FOR -A-";GA$ 425 [133] "WHAT IS THE NUMBER FOR -B-";GB$ 430 [133] "WHAT IS THE NUMBER FOR -C-";GC$ 435 [133] "WHAT IS THE NUMBER FOR -D-";GD$ 438 [129] X[178]1 [164] 1000:[130] 440 [153]"ONONONONONONONONONONONONONONONONONON" 441 [153] [163]30)"1 ) ";GA$;GB$;GC$;GD$ 442 [129] X[178]1 [164] 1000:[130]:[141] 6000 443 [153]" " 444 [153]" " 445 [153]" " 446 [153]" " 447 [153]" " 448 [153]" " 451 [153]" " 455 [129] X[178]1 [164] 1400:[130] 460 [153]"ONONONONONONON " 465 [153]"NUMBERS IN THE RIGHT PLACE";L 466 G[178]12:[129] X[178]1 [164] 2000:[130]:[153]" PRESS SPACE BAR " 467 [161] A$ 468 [139] A$[178]"" [137] 467 469 [139] A$[179][177][199](32)[137] 467 470 [129] E[178]1 [164] 11 471 G[178]G[171]1 475 [153]" " 476 [153]"ONONONONONON" " 477 PRINT" " 478 PRINT" " 479 PRINT" " 480 PRINT" " 490 FOR X=1 TO 1000:NEXT:PRINT"[145][145]NUMBER OF GUESSES LEFT:";G 495 FOR X=1 TO 1000:NEXT 500 PRINT:INPUT "WHAT IS THE NUMBER FOR -A-";GA$ 510 INPUT "WHAT IS THE NUMBER FOR -B-";GB$ 520 INPUT "WHAT IS THE NUMBER FOR -C-";GC$ 530 INPUT "WHAT IS THE NUMBER FOR -D-";GD$ 531 FOR X=1 TO 1000:NEXT:H=E+1 532 PRINT"[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]" 533 ON E GOSUB 800,810,820,830,840,850,860,865,870,875,880,885,890,895 534 PRINT TAB(29)H;") ";GA$;GB$;GC$;GD$ 535 ON E GOSUB 900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030 536 FOR X=1 TO 1000:NEXT:GOSUB 6000 537 PRINT" " 538 PRINT" " 539 PRINT" " 540 PRINT" " 541 PRINT" " 542 PRINT" " 543 PRINT" ":FOR X=1 TO 1400:NEXT 544 PRINT"[145][145][145][145][145][145][145][145] " 545 PRINT"NUMBERS IN THE RIGHT PLACE";L 546 FOR X=1 TO 2000:NEXT:IF G=1 GOTO 2000 547 PRINT" PRESS SPACE BAR " 548 GET A$ 549 IF A$="" GOTO 548 550 IF A$<>CHR$(32)GOTO 548 560 PRINT"[145]" 580 NEXT E 800 PRINT"":RETURN 810 PRINT"":RETURN 820 PRINT"":RETURN 830 PRINT"":RETURN 840 PRINT"":RETURN 850 PRINT"":RETURN 860 PRINT"":RETURN 865 PRINT"":RETURN 870 PRINT"":RETURN 875 PRINT"":RETURN 880 PRINT"":RETURN 885 PRINT"":RETURN 900 PRINT"[145]":RETURN 910 PRINT"[145][145]":RETURN 920 PRINT"[145][145][145]":RETURN 930 PRINT"[145][145][145][145]":RETURN 940 PRINT"[145][145][145][145][145]":RETURN 950 PRINT"[145][145][145][145][145][145]":RETURN 960 PRINT"[145][145][145][145][145][145][145]":RETURN 970 PRINT"[145][145][145][145][145][145][145][145]":RETURN 980 PRINT"[145][145][145][145][145][145][145][145][145]":RETURN 990 PRINT"[145][145][145][145][145][145][145][145][145][145]":RETURN 1000 PRINT"[145][145][145][145][145][145][145][145][145][145][145]":RETURN 1010 PRINT"[145][145][145][145][145][145][145][145][145][145][145][145]":RETURN 2000 FOR X=1 TO 2000:NEXT 2005 PRINT:PRINT" YOU LOSE!" 2008 FOR X=1 TO 2000:NEXT 2012 PRINT:PRINT" THE COMBINATION WAS";N;O;P;Q 2015 PRINT:PRINT:INPUT" WANT TO TRY AGAIN? YES/NO";A$ 2020 IF A$="N" OR A$="NO" GOTO 2100 2030 RESTORE 2040 FOR X=1 TO 13 2045 READ Q$ 2048 NEXT X 2050 GOTO 5 2100 END 3000 PRINT"[147]":POKE 53280,6:POKE 53281,6:POKE 646,3 3010 FOR X=1 TO 1000:NEXT 3020 PRINT 3030 PRINT" THE LOCKSMITH 3035 [153] 3040 [153] "THE LOCK CAN HAVE 750 DIFFERENT COMBI- 3045 PRINT"NATIONS. YOUR JOB IS TO DISCOVER THE 3050 [153]"CORRECT ONE. YOU WILL *NOT* BE TOLD HOW 3060 PRINT"MANY NUMBERS YOU HAVE GUESSED CORRECTLY 3070 [153]"AFTER EACH GUESS, BUT ONLY HOW MANY OF 3080 PRINT"THE CORRECT GUESSES ARE IN THE RIGHT 3090 [153]"POSITION ON THE LOCK. 3095 PRINT 3100 PRINT"REMEMBER THAT THE LOCK CAN ONLY HAVE 3110 [153]"THE NUMBERS 1 THROUGH 5, BUT THEY CAN 3120 PRINT"BE IN ANY ORDER, AND ANY SINGLE NUMBER 3130 [153]"CAN REPEAT UP TO FOUR TIMES: (2222) 3140 PRINT"YOU HAVE 12 TRIES TO OPEN THE LOCK. 3150 [153]:[153]" HINT 3160 PRINT"IF YOU ARE UNSUCCESSFUL AT SOLVING THE 3170 [153]"PUZZLE AFTER MANY TRYS, OR BECOME TOO 3180 PRINT"FRUSTRATED, STOP THE PROGRAM AND TYPE: 3190 [153]" LIST 8000-8100 FOR A HELPFUL HINT. 3195 PRINT:PRINT" PRESS THE SPACEBAR TO CONTINUE 3200 [161] A$ 3210 [139] A$[178]"" [137] 3200 3220 [139] A$[179][177][199](32) [137] 3200 3230 [142] 4000 [153]"":[153] 4015 [153]" (null)USRUSRUSRUSRUSRUSR(null) " 4020 [153]" (null) (null)USRUSRUSRUSR(null)CLOSE(null) " 4030 [153]" SGN+ SGN+ " 4040 [153]" FNTHEN FNTHEN " 4050 [153]" CLOSE(null)SQR FN+CLOSE " 4060 [153]" SGN+ " 4070 [153]" +USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRSGN " 4080 [153]" + A B C D SGN " 4090 [153]" ++USRUSRUSR(null)USRUSR(null)USRUSR(null)USRUSRSGNSGN " 4100 [153]" ++SYS"N"OPENWAITSYS";O;"OPENWAITSYS";P;"OPENWAITSYS";Q;"OPENWAITSGNSGN " 4110 [153]" ++ANDANDAND(null)ANDAND(null)ANDAND(null)ANDANDSGNSGN " 4120 [153]" + SGN " 4130 [153]" +ANDANDANDANDANDANDANDANDANDANDANDANDANDANDSGN " 4140 [129] X[178]1 [164] 8 4150 [153]" " 4160 [130] X 4170 [153]"ONONONONONON YOU WIN! 4500 GOTO 2015 5000 GOSUB 5100 5010 N=R 5020 GOSUB 5100 5030 O=R 5040 GOSUB 5100 5050 P=R 5060 GOSUB 5100 5070 Q=R 5100 R=INT(RND(0)*5)+1 5110 RETURN 5500 END 6000 GA=VAL(GA$):GB=VAL(GB$):GC=VAL(GC$):GD=VAL(GD$) 6005 A=0:B=0:C=0:D=0:J=0:L=0 6010 IF GA=N THEN A=1 6020 IF GB=O THEN B=1 6030 IF GC=P THEN C=1 6040 IF GD=Q THEN D=1 6050 L=A+B+C+D 6060 IF GA=N AND GB=O AND GC=P AND GD=Q THEN GOTO 4000 6190 RETURN 8000 REM THE SIMPLEST WAY TO START 8010 REM IS TO LIST BLOCKS OF NUMBERS 8020 REM SUCH AS 1111, 2222, ETC. TO 8030 REM FIND OUT (WITHIN 5 OF THE 12 8040 REM TRYS) EXACTLY WHAT NUMBERS 8050 REM ARE IN USE ON THE LOCK. AFTER 8060 REM THAT, TRY TAKING ANY DOUBLE 8070 REM NUMBERS IN USE, AND PUT THEM 8080 REM WITH 2 NON-USE NUMBERS TO 8090 REM FIND THEIR LOCATION. THE REST 8100 REM IS UP TO YOU! 9000 POKE 53280,7:POKE 53281,7:POKE 646,6:PRINT"[147]" 9001 FOR X=1 TO 1000:NEXT 9003 REM* LINE RIGHT * 9005 FOR X=1 TO 39 9010 PRINT"[191]"; 9015 FOR Y=1 TO 10:NEXT Y 9020 NEXT 9028 REM* LINE DOWN * 9030 FOR X=1 TO 22 9040 PRINT TAB(40)"[157][157][191]" 9050 FOR Y=1 TO 10:NEXT Y 9060 NEXT X 9068 REM* LINE LEFT * 9070 FOR X=1 TO 39 9080 PRINT"[157][157][191]"; 9090 FOR Y=1 TO 10:NEXT Y 9095 NEXT X 9096 PRINT"[157][191][157]"; 9098 REM* LINE UP * 9100 FOR X=1 TO 21 9110 PRINT "[145][191][145]" 9120 FOR Y=1 TO 10: NEXT Y 9130 NEXT X 9140 FOR D =1 TO 350:NEXT 9160 PRINT TAB(204)"[191]"; 9170 FOR X=1 TO 28 9175 PRINT "[191]"; 9180 FOR Y=1 TO 10:NEXT Y 9190 NEXT X 9195 PRINT"[191]" 9200 PRINT TAB(33)"[191]" 9210 PRINT TAB(33)"[191]" 9220 PRINT TAB(33)"[191]" 9230 PRINT TAB(33)"[191]"; 9240 FOR X=1 TO 30 9250 PRINT"[157][191][157]"; 9255 FOR Y=1 TO 10: NEXT Y 9260 NEXT X 9270 FOR X=1 TO 3 9280 PRINT "[145][191][157]"; 9290 FOR Y=1 TO 10:NEXT 9300 NEXT X 9305 FOR X=1 TO 350:NEXT 9310 PRINT TAB(46)" ANDING'S NOODLE PRESENTS" 9315 FOR X=1 TO 1000:NEXT 9320 PRINT TAB(252)" " 9330 PRINT TAB(12)"*[157]"; 9335 FOR J=1 TO 13 9340 FOR X=1 TO 12 9350 PRINT" *[157]"; 9360 FOR Y=1 TO 2:NEXT Y 9370 NEXT X 9375 PRINT"[157]* [157]"; 9380 FOR X=1 TO 11 9390 PRINT"[157][157]* [157]"; 9400 FOR Y=1 TO 8:NEXT Y 9410 NEXT X 9415 READ A$ 9416 PRINT"[157][145]";A$;:PRINT""; 9420 NEXT J 9425 FOR Y=1 TO 200:NEXT 9430 PRINT TAB(58)"*":FOR Y=1 TO 200:NEXT 9440 PRINT TAB(18)"*":FOR Y=1 TO 200:NEXT 9450 PRINT TAB(18)"*":FOR Y=1 TO 200:NEXT 9460 PRINT TAB(18)"*":FOR Y=1 TO 200:NEXT 9470 PRINT TAB(18)"*":FOR Y=1 TO 2000:NEXT 9480 RETURN